AliRTCLinuxEngine接口
本文介绍实时音视频Linux SDK Python engine接口说明。
目录
API | 功能描述 |
获取一个AliRTCEngineInterface实例。 | |
销毁AliRTCEngineInterface实例。 | |
获取事件回调句柄。 | |
语法糖版加入频道,无需传nonce、timestamp,方便客户兼容其他厂商SDK。 | |
离开频道。 | |
查询是否允许推送camera track。 | |
查询是否允许推送screen track。 | |
查询是否允许推送audio track。 | |
查询是否允许推送simulcast (camera track)。 | |
启用外部视频输入源。 | |
输入外部输视频, 暂不支持2k及以上的视频输入。 | |
设置是否启用外部音频输入推流。 | |
输入外部音频数据推流。 | |
设置音质。 | |
设置外部输入音频推流混音音量。 | |
获取外部输入音频推流混音音量。 | |
发送媒体扩展信息(SEI), 最大长度为4*1024字节,用于业务的少量数据传输。 | |
是否允许推送次要视频流。 | |
是否推送本地视频(摄像头)流。 | |
是否推送本地音频流。 | |
开始推送屏幕流。 | |
停止/恢复订阅特定远端用户的音频流, 用于会中调用, 会前调用无效。 | |
停止/恢复订阅远端用户的视频流, 用于会中调用, 会前调用无效。 | |
设置相机流视频编码属性。 | |
设置屏幕流视频编码属性。 | |
设置订阅相机流格式,大流或小流。 | |
停止或恢复本地视频数据发送。 | |
停止或恢复本地音频数据发送。 | |
设置用户角色。 | |
设置默认订阅视频流类型。 | |
以观众模式入会后,若房间内的所有主播均下播,就立即回调OnError,错误码ERR_NO_PEOPLE。 | |
入会后等待一段时间,若始终无人上线则回调OnError,错误码ERR_NO_PEOPLE。 | |
JSON格式字符串进行自定义配置,如打开关闭dataChannel。 | |
在本地生成joinchannel所需要的token,绕过appserver完成鉴权。 | |
通过dataChannel发送数据。 | |
如果engine出现error,通过这个消息通知业务层。 | |
如果engine出现warning,通过这个消息通知业务层。 | |
加入频道结果。 | |
获得dataChannel远端数据。 | |
离开频道结果。 | |
远端用户(通信模式)/(互动模式,主播角色)加入频道回调。 | |
远端用户(通信模式)/(互动模式,主播角色)离开频道回调。 | |
远端用户的音视频流发生变化回调。 | |
音频订阅情况变更回调。 | |
相机流订阅情况变更回调。 | |
大小订阅情况变更回调。 | |
屏幕分享流订阅情况变更回调。 | |
屏幕分享推流变更回调。 | |
次要流推流变更回调。 | |
视频推流变更回调。 | |
音频推流变更回调。 | |
混音前每一路远端用户的音频数据回调。 | |
本地订阅音频数据回调。 | |
订阅的远端视频数据回调。 | |
订阅的远端视频,解码前数据回调。 | |
收到媒体扩展信息回调。 | |
当用户角色发生变化时通知。 | |
音频存档定制能力,分流音频转码AAC输出。 | |
音频存档定制能力,合流音频转码AAC输出。 | |
非匀速情况下推送音频数据过快,SDK反馈状态。 | |
非匀速情况下推送视频数据过快,SDK反馈状态。 |
接口详情
CreateAliRTCEngine: 获取一个AliRTCEngineInterface实例。
def CreateAliRTCEngine(eventHandler:EngineEventHandlerInterface, lowPort:int, highPort:int, \
logPath:str, coreServicePath:str, h5mode:bool, extra:str) -> AliRTCEngineInterface
参数说明
名称 | 类型 | 描述 |
eventHandler | EngineEventHandlerInterface * | 回调对象,负责处理回调逻辑。 |
lowPort | int | 端口号下限,lowPort~highPort之间的端口将被随机选择用于进程间通信 |
highPort | int | 端口号上限 |
logPath | str | SDK运行过程中,日志文件的保存路径 |
coreServicePath | str | AliRtcCoreService的实际路径 |
h5mode | bool | h5兼容模式,一般false即可 |
extra | str | 对SDK进行额外配置时传入的JSON格式字符串 |
返回说明 AliRTCEngineInterface实例。
Release: 销毁AliRTCEngineInterface实例。
def Release() -> None
GetEventHandler: 获取事件回调句柄。
def GetEventHandler() -> EngineEventHandlerInterface
返回说明 事件回调句柄。
JoinChannel: 语法糖版加入频道,无需传nonce、timestamp,方便客户兼容其他厂商SDK。
def JoinChannel(token:str, channelId:str, userId:str, userName:str, config:JoinChannelConfig) -> int
参数说明
参数 | 类型 | 描述 |
token | str | 单参数入会的鉴权信息。 |
channelId | str | 入会频道,必须和产生Token的值一样。 |
userId | str | 入会的userid,必须和产生token的值一样。 |
userName | str | 用户的显示名称(不是用户ID)。 |
config | JoinChannelConfig | joinChannel时的设置项 |
返回说明 0表示方法调用成功,非0表示方法调用失败。 重要该接口是异步接口,是否成功加入频道,需要通过OnJoinChannelResult回调判断。
LeaveChannel: 离开频道。
def LeaveChannel() -> int
返回说明 0表示方法调用成功,其他表示方法调用失败。
IsLocalVideoStreamPublished: 查询是否允许推送camera track。
def IsLocalVideoStreamPublished() -> bool
返回说明 true表示允许,false表示禁止。
IsLocalScreenPublishEnabled: 查询是否允许推送screen track。
def IsLocalScreenPublishEnabled() -> bool
返回说明 true表示允许,false表示禁止。
IsLocalAudioStreamPublished: 查询是否允许推送audio track。
def IsLocalAudioStreamPublished() -> bool
返回说明 true表示允许,false表示禁止。
IsDualStreamPublished: 查询是否允许推送simulcast (camera track)。
def IsDualStreamPublished() -> bool
返回说明 true表示允许,false表示禁止。
SetExternalVideoSource: 启用外部视频输入源。
def SetExternalVideoSource(enable:bool, sourceType:VideoSource, renderMode:RenderMode) -> int
启用后使用PushExternalVideoFrame接口输入视频数据。
参数说明
名称 | 类型 | 描述 |
enable | bool | true表示开启,false表示关闭。 |
sourceType | VideoSource | 流类型。 |
renderMode | RenderMode | 渲染模式。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PushExternalVideoFrame: 输入外部输视频, 暂不支持2k及以上的视频输入。
def PushExternalVideoFrame(frame:VideoDataSample, sourceType:VideoSource) -> int
输入视频帧支持多种类型,如YUV和RGB。
参数说明
名称 | 类型 | 描述 |
frame | VideoDataSample | 帧数据。 |
sourceType | VideoSource | 流类型。 |
返回说明 0表示方法调用成功,其他表示方法调用失败,返回值为ERR_AUDIO_BUFFER_FULL时,可以调整控制发送速率。
SetExternalAudioSource: 设置是否启用外部音频输入推流。
def SetExternalAudioSource(enable:bool, sampleRate:int, channelsPerFrame:int) -> int
可通过SetExternalAudioPublishVolume设置输入音频推流音量。
参数说明
名称 | 类型 | 描述 |
enable | bool | true 开启,false 关闭。 |
sampleRate | int | 采样率 16k 48k...。 |
channelsPerFrame | int | 通道数 1 2...。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PushExternalAudioFrameRawData: 输入外部音频数据推流。
def PushExternalAudioFrameRawData(audioSamples:bytes, sampleLength:int, timestamp:int) -> int
参数说明
名称 | 类型 | 描述 |
audioSamples | bytes | 音频数据。 |
sampleLength | int | 音频数据长度。 |
timestamp | int | 时间戳。 |
返回说明 0表示方法调用成功,其他表示方法调用失败,返回值为ERR_AUDIO_BUFFER_FULL时,需要在间隔投递数据时间长度后再次重试投递。
SetAudioProfile: 设置音质。
def SetAudioProfile(audioProfile:AudioQualityMode, audioScene:AudioSceneMode) -> int
参数说明
名称 | 类型 | 描述 |
audioProfile | AudioQualityMode | 音频采集或编码模式参数。 |
audioScene | AudioSceneMode | 音频场景模式参数。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SetExternalAudioPublishVolume: 设置外部输入音频推流混音音量。
def SetExternalAudioPublishVolume(volume:int) -> int
参数说明
名称 | 类型 | 描述 |
volume | int | 音量 0-100。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
GetExternalAudioPublishVolume: 获取外部输入音频推流混音音量。
def GetExternalAudioPublishVolume() -> int
返回说明 音量。
SendMediaExtensionMsg: 发送媒体扩展信息(SEI), 最大长度为4*1024字节,用于业务的少量数据传输。
def SendMediaExtensionMsg(message:bytes, length:int, repeatCount:int, delay:int, isKeyFrame:bool) -> int
参数说明
名称 | 类型 | 描述 |
message | bytes | 扩展信息内容,可以传递4K Bytes数据。 |
length | int | 扩展信息长度,单位:字节。 |
repeatCount | int | 重复次数,用于防止网络丢包导致的消息丢失。 |
delay | int | 延迟多久发出去,单位:毫秒。 |
isKeyFrame | bool | 是否只在关键帧上增加SEI。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PublishLocalDualStream: 是否允许推送次要视频流。
def PublishLocalDualStream(enabled:bool) -> int
次要视频流只在推送视频流的前提下才会推送,设置推送次要视频流时,请确认已通过PublishLocalVideoStream: 是否推送本地视频(摄像头)流。方法开启视频流推送。 SDK默认设置不推送次要视频流,在加入频道前也可以调用此接口修改默认值,并在推送视频流时生效。
参数说明
名称 | 类型 | 描述 |
enabled | bool | 是否开启/关闭次要视频流推送; true:开启次要视频流推送,false:关闭次要视频流推送。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PublishLocalVideoStream: 是否推送本地视频(摄像头)流。
def PublishLocalVideoStream(enabled:bool) -> int
SDK默认设置推送视频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效。
参数说明
名称 | 类型 | 描述 |
enabled | bool | 是否开启/关闭本地视频流推送; true:开启视频流推送,false:关闭视频流推送。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PublishLocalAudioStream: 是否推送本地音频流。
def PublishLocalAudioStream(enabled:bool) -> int
SDK默认设置推送音频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效
参数说明
名称 | 类型 | 描述 |
enabled | bool | 是否开启/关闭本地音频流推送; true:开启音频流推送,false:关闭音频流推送。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
PublishScreenShareStream: 开始推送屏幕流。
def PublishScreenShareStream(enabled:bool) -> int
参数说明
名称 | 类型 | 描述 |
enabled | bool | 是否开启/关闭推送屏幕流; true:开启推送,false:关闭推送。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SubscribeRemoteAudioStream: 停止/恢复订阅特定远端用户的音频流, 用于会中调用, 会前调用无效。
def SubscribeRemoteAudioStream(uid:str, sub:bool) -> int
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID,从App server分配的唯一标示符。 |
sub | bool | 是否订阅远端用户的音频流;true:订阅指定用户的音频流,false:停止订阅指定用户的音频流 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SubscribeRemoteVideoStream: 停止/恢复订阅远端用户的视频流, 用于会中调用, 会前调用无效。
def SubscribeRemoteVideoStream(uid:str, videoTrack:VideoTrack, sub:bool) -> int:
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID,从App server分配的唯一标示符。 |
videoTrack | VideoTrack | 视频流类型。- AliEngineVideoTrackNo:无效参数,设置不会有任何效果。- AliEngineVideoTrackCamera:相机流。- AliEngineVideoTrackScreen:屏幕共享流。- AliEngineVideoTrackBoth:相机流和屏幕共享流。 |
sub | bool | 是否订阅远端用户的音频流;true:订阅指定用户的音频流,false:停止订阅指定用户的音频流 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SetVideoEncoderConfiguration: 设置相机流视频编码属性。
def SetVideoEncoderConfiguration(config:AliEngineVideoEncoderConfiguration) -> int
该方法用于设置相机流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等。所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。 该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次相机流视频编码属性,建议在入会前调用。
参数说明
名称 | 类型 | 描述 |
config | AliEngineVideoEncoderConfiguration |
SetScreenShareEncoderConfiguration: 设置屏幕流视频编码属性。
def SetScreenShareEncoderConfiguration(config:AliEngineScreenShareEncoderConfiguration) -> int
该方法用于设置屏幕流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等。所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。 该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次屏幕流视频编码属性,建议在入会前调用。
参数说明
名称 | 类型 | 描述 |
config | AliEngineScreenShareEncoderConfiguration | 预定义的屏幕共享编码属性,详见AliEngineScreenShareEncoderConfiguration: 屏幕流编码属性设置。 |
SetRemoteVideoStreamType: 设置订阅相机流格式,大流或小流。
def SetRemoteVideoStreamType(uid:str, streamType:AliEngineVideoStreamType) -> int;
推流端当前默认不推送小流,只有发送端调用了 PublishLocalDualStream(true) 打开双流模式,接收端才可以选择订阅大流还是小流,否则订阅的只能是大流。
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符 |
streamType | AliEngineVideoStreamType | 流类型。- AliEngineVideoStreamTypeNone:无效参数,设置不会有任何效果。- AliEngineVideoStreamTypeHigh:大流。- AliEngineVideoStreamTypeLow:小流。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
MuteLocalCamera: 停止或恢复本地视频数据发送。
def MuteLocalCamera(mute:bool) -> int
参数说明
名称 | 类型 | 描述 |
mute | bool | 表明是否停止或恢复。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
MuteLocalMic: 停止或恢复本地音频数据发送。
def MuteLocalMic(mute:bool) -> int
参数说明
名称 | 类型 | 描述 |
mute | bool | 表明是否停止或恢复外部文件推送。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SetClientRole: 设置用户角色。
def SetClientRole(clientRole:AliEngineClientRole) -> int
只可以在频道模式为AliRtcChannelProfileCommunication下调用,入会前/会议中均可设置,设置成功会收到OnUpdateRoleNotify: 当用户角色发生变化时通知。。 从Interactive转换为Live角色需要先停止推流,否则返回失败。 频道模式为AliRtcChannelProfileInteractiveLive模式时,用户角色默认为AliRtcClientRoleLive。
参数说明
名称 | 类型 | 描述 |
clientRole | AliEngineClientRole | 用户角色类型。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
SetRemoteDefaultVideoStreamType: 设置默认订阅视频流类型。
def SetRemoteDefaultVideoStreamType(streamType:AliEngineVideoStreamType) -> int
参数说明
名称 | 类型 | 描述 |
streamType | AliEngineVideoStreamType | 流类型,大流或小流。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
LeaveOnceNoStreamer: 以观众模式入会后,若房间内的所有主播均下播,就立即回调OnError,错误码ERR_NO_PEOPLE。
def LeaveOnceNoStreamer(enable:bool) -> None
此功能为审核场景定制能力。
参数说明
名称 | 类型 | 描述 |
enable | bool | 是否开启此功能,true开启,false关闭。 |
SetPeriodForCheckPeople: 入会后等待一段时间,若始终无人上线则回调OnError,错误码ERR_NO_PEOPLE。
def SetPeriodForCheckPeople(seconds:int) -> None
同时入会失败,体现为OnJoinChannelResult回调值-1。 此功能为审核场景定制能力,默认检查空房间的最大时长为5秒。
参数说明
名称 | 类型 | 描述 |
seconds | int | seconds 检查空房间的最大时间(秒),若为0(或小于0)表示关闭入会检查功能。 |
SetParameter: JSON格式字符串进行自定义配置,如打开关闭dataChannel。
def SetParameter(params:str) -> int
参数说明
名称 | 类型 | 描述 |
params | str | 自定义配置信息。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
GenerateToken: 在本地生成joinchannel所需要的token,绕过appserver完成鉴权。
def GenerateToken(authInfo:AuthInfo, appkey:str) -> None
方法内生成单参数入会token。
参数说明
名称 | 类型 | 描述 |
authInfo | AuthInfo | 自定义配置信息,在计算token前需要填充好appid、nonce、timestamp。 |
appkey | str | 与appid相对应,计算token所需要的key。 |
SendDataChannelMessage: 通过dataChannel发送数据。
def SendDataChannelMessage(ctrlMsg:AliEngineDataChannelMsg) -> int
参数说明
名称 | 类型 | 描述 |
ctrlMsg | AliEngineDataChannelMsg | 包含待发送数据和控制指令。 |
返回说明 0表示方法调用成功,其他表示方法调用失败。
OnError: 如果engine出现error,通过这个消息通知业务层。
def OnError(self, error_code:ERROR_CODE) -> None
参数说明
名称 | 类型 | 描述 |
error_code | ERROR_CODE | 错误类型。 |
OnWarning: 如果engine出现warning,通过这个消息通知业务层。
def OnWarning(self, warning_code:WARNNING_CODE) -> None
参数说明
名称 | 类型 | 描述 |
warning_code | WARNNING_CODE | 警告类型。 |
OnJoinChannelResult: 加入频道结果。
def OnJoinChannelResult(self, result:int, channel:str, userId:str) -> None
当应用调用 JoinChannel 方法时,该回调表示成功/失败加入频道。
参数说明
名称 | 类型 | 描述 |
result | int | 加入频道结果,成功返回0,失败返回错误码。 |
channel | str | 频道ID。 |
userId | str | 用户ID。 |
OnDataChannelMsg: 获得dataChannel远端数据。
def OnDataChannelMsg(self, uid:str, msg:AliEngineDataChannelMsg) -> None
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID。 |
msg | AliEngineDataChannelMsg | 远端传来的消息。 |
OnLeaveChannelResult: 离开频道结果。
def OnLeaveChannelResult(self, result:int) -> None
应用调用 LeaveChannel 方法时,该回调表示成功/失败离开频道,回调将会返回离会的result,如果 LeaveChannel 后直接 Destory SDK,将不会收到此回调。
参数说明
名称 | 类型 | 描述 |
result | int | 离开频道结果,成功返回0,失败返回错误码。 |
OnRemoteUserOnLineNotify: 远端用户(通信模式)/(互动模式,主播角色)加入频道回调。
def OnRemoteUserOnLineNotify(self, uid:str) -> None
该回调在以下场景会被触发:
通信模式 |
|
互动模式 |
|
互动模式下回调行为:
主播间可以互相收到加入频道回调。
观众可以收到主播加入频道回调。
主播无法收到观众加入频道回调。
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID 从App server分配的唯一标示符。 |
OnRemoteUserOffLineNotify: 远端用户(通信模式)/(互动模式,主播角色)离开频道回调。
def OnRemoteUserOffLineNotify(self, uid:str) -> None
该回调在以下场景会被触发:
通信模式 |
|
互动模式 |
|
通信模式和互动模式主播角色情况下,当长时间收不到远端用户数据,超时掉线时,会触发该回调。
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID 从App server分配的唯一标示符。 |
OnRemoteTrackAvailableNotify: 远端用户的音视频流发生变化回调。
def OnRemoteTrackAvailableNotify(self, uid:str, audioTrack:AudioTrack, videoTrack:VideoTrack) -> None
该回调在以下场景会被触发:
当远端用户从未推流变更为推流(包括音频和视频)。
当远端用户从已推流变更为未推流(包括音频和视频)。
互动模式下,调用 SetClientRole: 设置用户角色。 切换为主播角色 AliEngineClientRoleInteractive,同时设置了推流时,会触发该回调。
该回调仅在通信模式用户和互动模式下的主播角色才会触发。
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符。 |
audioTrack | AudioTrack | 音频流类型,详见 AudioTrack: 音频轨道。 |
videoTrack | VideoTrack | 视频流类型,详见 VideoTrack: 视频轨道。 |
OnAudioSubscribeStateChanged: 音频订阅情况变更回调。
def OnAudioSubscribeStateChanged(self, uid:str, oldState:AliEngineSubscribeState, newState:AliEngineSubscribeState,
elapseSinceLastState:int, channel:str) -> None
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符。 |
oldState | AliEngineSubscribeState | 之前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
newState | AliEngineSubscribeState | 当前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
elapseSinceLastState | int | 两次状态变更时间间隔(毫秒)。 |
channel | str | 当前频道id。 |
OnVideoSubscribeStateChanged: 相机流订阅情况变更回调。
def OnVideoSubscribeStateChanged(self, uid:str, oldState:AliEngineSubscribeState, newState:AliEngineSubscribeState,
elapseSinceLastState:int, channel:str) -> None
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符。 |
oldState | AliEngineSubscribeState | 之前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
newState | AliEngineSubscribeState | 当前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
elapseSinceLastState | int | 两次状态变更时间间隔(毫秒)。 |
channel | str | 当前频道id。 |
OnSubscribeStreamTypeChanged: 大小订阅情况变更回调。
def OnSubscribeStreamTypeChanged(self, uid:str, oldStreamType:AliEngineVideoStreamType, newStreamType:AliEngineVideoStreamType,
elapseSinceLastState:int, channel:str) -> None
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符。 |
oldStreamType | AliEngineVideoStreamType | 之前的订阅的大小流类型,详见 AliEngineVideoStreamType: 视频流类型。 |
newStreamType | AliEngineVideoStreamType | 当前的订阅的大小流类型,详见 AliEngineVideoStreamType: 视频流类型。 |
elapseSinceLastState | int | 大小流类型变更时间间隔(毫秒)。 |
channel | str | 当前频道id。 |
OnScreenShareSubscribeStateChanged: 屏幕分享流订阅情况变更回调。
def OnScreenShareSubscribeStateChanged(self, uid:str, oldState:AliEngineSubscribeState, newState:AliEngineSubscribeState,
elapseSinceLastState:int, channel:str) -> None
参数说明
名称 | 类型 | 描述 |
uid | str | userId,从App server分配的唯一标示符。 |
oldState | AliEngineSubscribeState | 之前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
newState | AliEngineSubscribeState | 当前的订阅状态,详见 AliEngineSubscribeState: 订阅状态。 |
elapseSinceLastState | int | 两次状态变更时间间隔(毫秒)。 |
channel | str | 当前频道id。 |
OnScreenSharePublishStateChanged: 屏幕分享推流变更回调。
def OnScreenSharePublishStateChanged(self, oldState:AliEnginePublishState, newState:AliEnginePublishState,
elapseSinceLastState:int, channel:str) -> None
参数说明
名称 | 类型 | 描述 |
oldState | AliEnginePublishState | 之前的推流状态。 |
newState | AliEnginePublishState | 当前的推流状态。 |
elapseSinceLastState | int | 状态变更时间间隔。 |
channel | str | 当前频道id。 |
OnDualStreamPublishStateChanged: 次要流推流变更回调。
def OnDualStreamPublishStateChanged(self, oldState:AliEnginePublishState, newState:AliEnginePublishState,
elapseSinceLastState:int, channel:str) -> None
参数说明
名称 | 类型 | 描述 |
oldState | AliEnginePublishState | 之前的推流状态。 |
newState | AliEnginePublishState | 当前的推流状态。 |
elapseSinceLastState | int | 状态变更时间间隔。 |
channel | str | 当前频道id。 |
OnVideoPublishStateChanged: 视频推流变更回调。
def OnVideoPublishStateChanged(self, oldState:AliEnginePublishState, newState:AliEnginePublishState,
elapseSinceLastState:int, channel:str) -> None
参数说明
名称 | 类型 | 描述 |
oldState | AliEnginePublishState | 之前的推流状态。 |
newState | AliEnginePublishState | 当前的推流状态。 |
elapseSinceLastState | int | 状态变更时间间隔。 |
channel | str | 当前频道id。 |
OnAudioPublishStateChanged: 音频推流变更回调。
def OnAudioPublishStateChanged(self, oldState:AliEnginePublishState, newState:AliEnginePublishState,
elapseSinceLastState:int, channel:str) -> None
参数说明
名称 | 类型 | 描述 |
oldState | AliEnginePublishState | 之前的推流状态。 |
newState | AliEnginePublishState | 当前的推流状态。 |
elapseSinceLastState | int | 状态变更时间间隔。 |
channel | str | 当前频道id。 |
OnSubscribeAudioFrame: 混音前每一路远端用户的音频数据回调。
def OnSubscribeAudioFrame(self, uid:str, frame:AudioFrame) -> None
来自远端单个用户的音频数据,详见 AliRTCSdk::Linux::AudioFormatPcmBeforMixing。
参数说明
名称 | 类型 | 描述 |
uid | str | 远端用户ID。 |
frame | AudioFrame | 音频数据,详见AudioFrame: 音频帧类。 |
OnSubscribeMixAudioFrame: 本地订阅音频数据回调。
def OnSubscribeMixAudioFrame(self, frame:AudioFrame) -> None
远端所有用户混音后待播放的音频数据,详见 AudioFrame: 音频帧类。
参数说明
名称 | 类型 | 描述 |
frame | AudioFrame | 音频数据,详见AudioFrame: 音频帧类。 |
OnRemoteVideoSample: 订阅的远端视频数据回调。
def OnRemoteVideoSample(self, uid:str, frame:VideoFrame) -> None
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID。 |
frame | VideoFrame | 视频裸数据。 |
OnRemoteVideoEncodedSample: 订阅的远端视频,解码前数据回调。
def OnRemoteVideoEncodedSample(self, uid:str, frame:VideoFrame) -> None
参数说明
名称 | 类型 | 描述 |
uid | str | 用户ID。 |
frame | VideoFrame | 视频解码前数据,Nalu。 |
OnMediaExtensionMsgReceived: 收到媒体扩展信息回调。
def OnMediaExtensionMsgReceived(self, userid:str, message:bytes, size:int) -> None
当一端通过 SendMediaExtensionMsg 发送信息后,其他端通过该回调接收数据。
参数说明
名称 | 类型 | 描述 |
userid | str | 发送用户userId。 |
message | bytes | 扩展信息内容。 |
size | int | 扩展信息长度。 |
OnUpdateRoleNotify: 当用户角色发生变化时通知。
def OnUpdateRoleNotify(self, oldRole:AliEngineClientRole, newRole:AliEngineClientRole) -> None
调用 setClientRole 方法切换角色成功时触发此回调。
参数说明
名称 | 类型 | 描述 |
oldRole | AliEngineClientRole | 变化前角色类型,参考 AliEngineClientRole: 用户角色类型。 |
newRole | AliEngineClientRole | 变化后角色类型,参考 AliEngineClientRole: 用户角色类型。 |
OnSubscribeAudioAac: 音频存档定制能力,分流音频转码AAC输出。
def OnSubscribeAudioAac(self, uid:str, frame:AudioFrame) -> None
参数说明
名称 | 类型 | 描述 |
uid | str | 远端用户ID。 |
frame | AudioFrame | 音频数据,这里的数据格式为AAC,详见 AudioFrame: 音频帧类。 |
OnSubscribeMixedAudioAac: 音频存档定制能力,合流音频转码AAC输出。
def OnSubscribeMixedAudioAac(self, frame:AudioFrame) -> None
参数说明
名称 | 类型 | 描述 |
frame | AudioFrame | 音频数据,已转码为AAC格式的合流音频数据,详见AudioFrame: 音频帧类。 |
OnPushAudioFrameBufferFull: 非匀速情况下推送音频数据过快,SDK反馈状态。
def OnPushAudioFrameBufferFull(self, isFull:bool) -> None
参数说明
名称 | 类型 | 描述 |
isFull | bool | SDK音频缓存是否已满,若已满请稍等些许再推音频数据。 |
OnPushVideoFrameBufferFull: 非匀速情况下推送视频数据过快,SDK反馈状态。
def OnPushVideoFrameBufferFull(self, isFull:bool) -> None
参数说明
名称 | 类型 | 描述 |
isFull | bool | SDK视频缓存是否已满,若已满请稍等些许再推视频数据。 |